package com.gem.shop.dao;

import com.gem.shop.entity.Commodity;

import java.util.List;

/**
 * @author zhang
 * @date 2020/9/17 11:16
 */
public interface CommodityDao {
    /**
     * 查询全部商品
     * @return 商品集合
     */
    List<Commodity> selectAllCommoditys();

    /**
     * 根据类型查询商品
     * @param type 类型
     * @return 商品集合
     */
    List<Commodity> selectCommoditysByType(Integer type);

    /**
     * 插入商品
     * @param commodity 商品
     */
    void insertCommodity(Commodity commodity);

    /**
     * 根据类型分页查询商品
     * @param type 类型
     * @return 商品集合
     */
    List<Commodity> selectCommoditysByPagesAndType(int pageNow,int pageSize,String type);

    /**
     * 通过名字模糊查询 并且分页
     * @param pageNow 当前页码
     * @param pageSize 每页显示的条数
     * @param name  名字
     * @return 商品集合
     */
    List<Commodity> selectCommoditysByPagesAndName(int pageNow,int pageSize,String name);

    /**
     * 根据名字查询商品总数
     * @param name 名字
     * @return 数量
     */
    Long selectCommoditysByPagesAndNameCount(String name);

    /**
     * 根据type查询数量
     * @param type 类型
     * @return 数量
     */
    Long selectCommoditysByTypeCount(String type);

    /**
     * 查询所有的分类
     * @return 类别集合
     */
    List<String> selectAllType();

    /**
     * 根据id查询商品
     * @param id 商品id
     * @return 商品
     */
    Commodity selectCommodityById(int id);

    /**
     * 根据类型和商品名称模糊程序
     * @param name 商品名称
     * @param type 商品类型
     * @return 商品集合
     */
    List<Commodity> selectCommodityByNameAndType(String name,String type);
}
